﻿/*
 *********************************************************************
 *    Management Extensions for Windows Windows Server AppFabric     *
 *********************************************************************
 *    Author    : Fatih Boy [fatih@enterprisecoding.com]             *
 *    Web site  : http://www.enterprisecoding.com                    *
 *********************************************************************
 *    License   : GNU Library General Public License (LGPL)          * 
 *********************************************************************
 */

using System;

namespace Com.Enterprisecoding.AppFabric.Extensions.Client.ObjectPicker {
    [Flags]
    public enum DSOP_FILTER : uint {
        /// <summary>
        /// Includes objects that have the showInAdvancedViewOnly attribute set to TRUE
        /// </summary>
        IncludeAdvancedView = 0x1,

        /// <summary>
        /// Includes user objects
        /// </summary>
        Users = 0x2,

        /// <summary>
        /// Includes built-in group objects
        /// </summary>
        BuiltinGroups = 0x4,

        /// <summary>
        /// Includes the contents of the Well Known Security Principals container
        /// </summary>
        WellKnownPrincipals = 0x8,

        /// <summary>
        /// Includes distribution group objects with universal scope
        /// </summary>
        UniversalGroupsDL = 0x10,

        /// <summary>
        /// Includes security groups with universal scope
        /// </summary>
        /// <remarks>
        /// This flag has no affect in a mixed mode domain because universal security groups do not exist in mixed mode domains
        /// </remarks>
        UniversalGroupsSE = 0x20,

        /// <summary>
        /// Includes distribution group objects with global scope
        /// </summary>
        GlobalGroupsDL = 0x40,

        /// <summary>
        /// Includes security group objects with global scope
        /// </summary>
        GlobalGroupsSE = 0x80,

        /// <summary>
        /// Includes distribution group objects with domain local scope
        /// </summary>
        DomainLocalGroupsDL = 0x100,

        /// <summary>
        /// Includes security group objects with domain local scope
        /// </summary>
        DomainLocalGroupsSE = 0x200,

        /// <summary>
        /// Includes contact objects
        /// </summary>
        Contacts = 0x400,

        /// <summary>
        /// Includes computer objects
        /// </summary>
        Computers = 0x800
    }
}